Имитационное моделирование
2026-02-21
Требуется создать рабочие каталоги на двух платформах - GitVerse и GitHub. Я воспользовался шаблоном курса, создал репозитории на GitVerse, аналогично на GitHub
Созданный репозиторий на платформе GitVerse
Теперь перехожу в папку курса и инициализирую его командой make prepare.
Инициализация курса в консоли
Загружаю изменения на сервер.
Загрузка изменений на сервер с помощью git
Отправляю изменения на обе платформы - GitHub (origin), GitVerse (simmod).
Отправление изменений на GitHub и GitVerse
Изменения успешно внесены, рабочий католог курса создан.
Рабочий католог курса на платформе GitHub
По заданию курс требует git flow для работы. Инициализирую его, выбираю v, как префикс для новых версий.
Инициализация git flow
После инициализации git flow появилось разделение на ветки develop и master, нужно внести изменения на обе платформы GitHub и GitVerse. Командой git branch проверяю, что я нахожусь на ветке develop. После чего отправляю изменения на платформы.
Отправление изменений курса на платформы
Инициализирую первый релиз - версия 1.0.0, затем командой standard-changelog –first-release создаю журнал изменений, добавляю изменения в git, создаю коммит.
Инициализация первого релиза
Отправляю изменения на обе платформы, включая созданный тэг.
Изменения отправлены на GitHub и GitVerse
На GitVerse самостоятельно создаю первый релиз.
Первый релиз на GitVerse
На GitHub создаю релиз командами release create и прикрепляю журнал изменений.
Первый релиз на GitHub
Перехожу в каталог lab01, первый раз запускаю Julia, после чего командами using Pkg, Pkg.add(“DrWatson”) загружаю пакет DrWatson. Затем инициализирую проект.
Инициализация проекта с помощью DrWatson
Для дальнейшей работы требуется загрузить большее количество пакетов. Вместо того, чтобы делать это самостоятельно, воспользуюсь скриптом, который загрузит все требуемые пакеты. Ниже программный код данного скрипта.
Программный код для загрузки требуемых пакетов
Запускаю скрипт, пакеты загружены успешно.
Загрузка требуемых пакетов
Теперь требуется проверить загруженные пакеты следующим скриптом. Перед этим, в папке scripts создаю файл, вставляю требуемый программный код проверки пакетов.
Создание скрипта для проверки пакетов
Запускаю скрипт. Все пакеты проверены. Можно приступать к работе с ними.
Пакеты успешно проверены
Экспоненциальный рост — это процесс увеличения величины, при котором скорость роста в каждый момент времени пропорциональна текущему значению этой величины. Чем больше система, тем быстрее она растет.
В лабораторной работе требуется реализовать данную модель с помощью Julia.
Создаю скрипт 01_exponential_growth.jl, данный скрипт получит на вход один набор параметров для модели экспоненциального роста, получит решение, добавит их в таблицу, а также нарисует график.
Первая версия скрипта 01_exponential_growth.jl
Запускаю скрипт, работа выполнено успешно, получены результаты, а также график.
Результат работы 01_exponential_growth.jl
Теперь требуется преобразовать программный код данного скрипта в литературный вид.
Преобразую код 01_exponential_growth.jl в литературный вид.
Литературный вид 01_exponential_growth.jl
Т. к. сама суть исполняемого кода не была изменена, результат выплонения программы такой же. Рисунок также был создан.
Результат 01_exponential_growth.jl в литературном виде
Теперь можно воспользоваться особенностями такого вида программирования. По заданию требуется создать скрипт tangle.jl, который на вход будет получать код в литературном виде, а на выходе будет производить три файла - чистый код, jupyter notebook, документацию в формате Quarto.
Создание tangle.jl
Запускаю tangle.jl, все три файла успешно созданы.
Результат работы tangle.jl
Проверим созданный Jupyter notebook. Файл открывается и успешно работает.
Проверка 01_exponential_growth в виде Jupyter notebook
Теперь требуется внести код 01_exponential_growth в отчёт. Перед этим в файл _quarto.yml добавляю код, включающий поддержку Julia.
Изменения в _quarto.yml
Затем вношу изменения в preamble.tex, также добавляя поддержку Julia.
Изменения в preamble.tex
Код успешно добавлен.
Код внутри отчёта
Теперь требуется создать новый код, вместо того, чтобы подавать один набор данных, как в 01_exponential_growth.jl, изменю программу так, чтобы подавалось несколько наборов данных. Код уже преобразован в литературный вид.
Создание 02_exponential_growth.jl
Запускаю программу, код работает успешн.
Результат работы 02_exponential_growth.jl
Программой tangle.jl создаю три файла из 02_exponential_growth.jl, среди которых Jupyter notebook. Он успешно работает.
02_exponential_growth.jl в виде Jupyter notebook
Добавлю эту программу в отчёт.
02_exponential_growth.jl внутри отчёта
Код успешно интегрирован в отчёт, его вы можете просмотреть ниже:
02_exponential_growth.jl успешно интегрирован
В результате выполнения данной лабораторной работы, я вспомнил основные методы работы с системой Git и разными платформами, а также получил практические навыки работы с Julia.